package exeption;
/**
 * throw关键字，允许程序主动对外抛出异常
 * 通常下列情况会主动对外抛出异常
 * 1:当前代码片段遇到了异常，但是该异常不应当在当前代码片段被处理(责任制问题)
 * 2:程序可以运行，但是运行场景不满足业务要求时可以对调用者抛出异常(本案例演示该场景)
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person p=new Person();
        //  p.setAge(22);
        try {
            /*
                当调用一个含有throws声明异常抛出的方法时，编译器要求必须处理该异常，否则
                编译不通过。
                处理方式有两种:
                1:使用try-catch主动处理该异常
                2:可以在当前方法上继续使用throws对外声明该异常的抛出给上层调用者处理
                具体选取哪种取决于责任制问题，但永远不应当在main方法上使用throws
             */
            //满足语法，但是不满足业务

            p.setAge(1000);

        }catch( IllegalAgeException e){
            e.printStackTrace();
        }
        System.out.println("此人年龄:"+p.getAge());
    }



}
